
#ifndef  HELPER_WATCH_LAP_H
#define  HELPER_WATCH_LAP_H

#include "helper/scope/ScopeGuard.h"

namespace helper {
namespace watch {

template<typename T>
class Lap : public helper::scope::ScopeGuard<T>{
public:
    Lap(T & t, IStopWatch<T> & stopWatch)
    :helper::scope::ScopeGuard<T>(t, stopWatch)
    {
    }
};

template<>
class Lap<void> : public helper::scope::ScopeGuard<void> {
public:
    Lap(IStopWatch<void> & stopWatch)
    :helper::scope::ScopeGuard<void>(stopWatch)
    {
    }
};

typedef Lap<const std::string> NamedLap ;

}// end of namespace watch
}// end of namespace helper

#endif   /* HELPER_WATCH_LAP_H */
